// import type { App, Directive, DirectiveBinding } from "vue";

const copyDirective = {
    mounted(el, binding) {
      el.target = binding.value;
      el.addEventListener("click", () => {
        // 创建 textarea 元素
        const textarea = document.createElement("textarea");
        // 移出视野
        textarea.style.position = "fixed";
        textarea.style.top = "-99999px";
        // 插入 DOM
        document.body.appendChild(textarea);
        // 定义值
        textarea.value = el.target;
        // 自动选中文本  用于复制的 API 只能复制选中的值
        textarea.select();
        // 浏览器复制 API 显示废弃的原因是没有纳入标准 但仍被各大主流浏览器支持
        const res = document.execCommand("Copy");
  
        res && console.log(`success: ${el.target}`);
        // 移除 textarea
        document.body.removeChild(textarea);
      });
    },
    updated(el, binding) {
      // 实时更新内容
      el.target = binding.value;
    },
  };
  
  export function setCopyDrective(app) {
    app.directive("copy", copyDirective);
  }
  